home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 10 / The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso / PC_SIGCD / 20 / 5 / DISK2058.ZIP / UNFAST.EXE / FSORT.FI < prev    next >
Text File  |  1980-01-01  |  832b  |  30 lines

  1. ;FAST SORT library.
  2. #short
  3. sort_work ? 200
  4.  
  5. function sort(sstarts,sstarto,slen,srecs)
  6.     {
  7.     if slen>200 then return 0
  8.     if not srecs then return 1
  9.     sort_size=slen*srecs
  10.     sort_seg=allocate (1+sort_size+slen)/16+1:if error then return 0
  11.     splace=0
  12.  
  13.     for sort_many=0 to srecs-1
  14.     sorg=sstarto+splace
  15.     moveb slen from sstarts|sorg to sort_work
  16.     sort_rec=findbin(sort_work,sort_seg,0,sort_many,slen,slen)
  17.  
  18.     if not sort_rec then sort_rec=find_bin_put
  19.  
  20.     sort_find=(sort_rec-1)*slen
  21.     if splace above sort_find then moveb splace-sort_find from sort_seg|sort_find to sort_seg|sort_find+slen
  22.     moveb slen from sort_work to sort_seg|sort_find
  23.     splace+=slen
  24.     next sort_many
  25.  
  26.     moveb sort_size from sort_seg|0 to sstarts|sstarto
  27.     deallocate sort_seg
  28.     return 1
  29.     }
  30.